::WS::Utils::ServiceTypeDef Client FreshBookApi TaskDefinition {
    name        {type string minOccurs 1 maxOccurs 1}
    description {type string minOccurs 0 maxOccurs 1}
    rate        {type string minOccurs 0 maxOccurs 1}
    billable    {type string minOccurs 0 maxOccurs 1}
}

::WS::Utils::ServiceTypeDef Client FreshBookApi TaskUpdate {
    task_id         {type string minOccurs 1 maxOccurs 1}
    name        {type string minOccurs 1 maxOccurs 1}
    description {type string minOccurs 0 maxOccurs 1}
    rate        {type string minOccurs 0 maxOccurs 1}
    billable    {type string minOccurs 0 maxOccurs 1}
}


::WS::Utils::ServiceTypeDef Client FreshBookApi TaskListArray {
    task    {type TaskUpdate()}
}


::WS::Client::DefineRestMethod FreshBookApi task task.create {
    task    {type TaskDefinition}
} {
    task_id {type string}
}

::WS::Client::DefineRestMethod FreshBookApi task task.update {
    task    {type TaskUpdate}
} {}

::WS::Client::DefineRestMethod FreshBookApi task task.get {
    task_id {type string}
} {
    task    {type TaskUpdate}
}

::WS::Client::DefineRestMethod FreshBookApi task task.delete {
    task_id {type string}
} {
}

::WS::Client::DefineRestMethod FreshBookApi task task.list {
    project_id  {type string}
    page        {type string minOccurs 0 maxOccurs 1}
    per_page    {type string minOccurs 0 maxOccurs 1}
} {
    tasks    {type TaskListArray}
}
